﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using Atlandiz.Data;
using FastReport;
using FastReport.Data;
using FastReport.Preview;
using FastReport.Utils;
using System.IO;

namespace Atlandiz.EnvanterVeZimmetYonetimi
{
    public partial class FormZimmet : DevExpress.XtraEditors.XtraForm
    {
        public Report FReport = new Report();
        public int EvrakCinsi;
        public int KayID;

        public FormZimmet()
        {
            InitializeComponent();
        }

        private void Zimmet_Load(object sender, EventArgs e)
        {
            labelControl4.Text = "";
            labelControl6.Text = "";
            
            Army.EventConfirm = false;
            if (EvrakCinsi == 1)
            {
                this.Text = "Zimmet Giriş Evrağı";
            }
            else if (EvrakCinsi == -1)
            {
                this.Text = "Zimmet Çıkış Evrağı";
            }

            if (KayID != 0)
            {
                KayitGetir();
            }

        }

        public void formuTemizle()
        {
            _txtPersonelString.Text = "";
            _txtPersonelInt.Text = "";
            labelControl4.Text = "";
            labelControl6.Text = "";
            _dtEvrakTarihi.Text = "";
            _lwZimmetListe.Items.Clear();
            _lwZimmetDeleteListe.Items.Clear();
        }

        private void listedenKaldırToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (_lwZimmetListe.SelectedItems.Count > 0)
            {
                PopupAreYouSure Eminmisiniz = new PopupAreYouSure();
                Army.EventMessage="Seçilen Kayıt Zimmet Evrağından Çıkarılacak\nEmin misiniz?";
                Eminmisiniz.ShowDialog();

                if (Army.EventConfirm) {
                    ListViewItem ls = new ListViewItem(_lwZimmetListe.SelectedItems[0].SubItems[0].Text);
                    ls.SubItems.Add(_lwZimmetListe.SelectedItems[0].SubItems[4].Text);
                    _lwZimmetDeleteListe.Items.Add(ls);
                    
                    _lwZimmetListe.SelectedItems[0].Remove();
                }
            }
            else
            {
                MessageBox.Show("Silinecek Kaydı Seçiniz...");
            }

        }

        private void açıklamayıDüzenleToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (_lwZimmetListe.SelectedItems.Count > 0) {
                Army.Aciklama = _lwZimmetListe.SelectedItems[0].SubItems[8].Text;
                PopupAciklamaEdit aep = new PopupAciklamaEdit();
                aep.ShowDialog();
                _lwZimmetListe.SelectedItems[0].SubItems[8].Text = Army.Aciklama;            
            }            
        }

        public void KayitGetir()
        {
            DataTable dtbl = Army.SQL().GetDataTable("Select Ad+' '+Soyad,pID,Gorev from Personel where pID=(Select pID from ZimmetHKutuk where zID=" + KayID + ")");
            _txtPersonelString.Text = dtbl.Rows[0][0].ToString();
            _txtPersonelInt.Text = dtbl.Rows[0][1].ToString();
            labelControl4.Text = dtbl.Rows[0][2].ToString();
            labelControl6.Text = Army.SQL().GetDataCell("Select DepAdi from Departman where dID=(Select dID from Personel where pID=(Select pID from ZimmetHKutuk where zID=" + KayID + "))");
            _dtEvrakTarihi.Value = DateTime.Parse(Army.SQL().GetDataCell("Select EvrakDate from ZimmetHKutuk where zID=" + KayID));

            string Sorgu = "SELECT * FROM \n" +
                "(\n" +
                "Select\n" +
                "zd.zdID [ID],\n" +
                "zd.UrunID [UrunID],\n" +
                "zd.UrunTipi [ÜrünTipi],\n" +
                "(CASE WHEN zd.UrunTipi = 1 then 'Cihaz' ELSE 'Yazılım' END) [Ürün Tipi],\n" +
                "ct.chzTur [Cihaz/Yazılım],\n" +
                "cm.ChzMarka [Marka/Adı],\n" +
                "cmd.ChzModel [Model/Sürüm],\n" +
                "c.SeriNoIMEI [Seri/İmei/Lisans],\n" +
                "zd.Aciklama [Açıklama],\n" +
                "c.Maliyet [Maliyet],\n" +
                "c.ZimmetDegeri [Zimmet Değeri]\n" +
                "from ZimmetHDetay zd \n" +
                "left join Cihaz c on zd.UrunID=c.cID\n" +
                "left join CihazTur ct on c.ctID=ct.ctID\n" +
                "left join CihazMarka cm on c.cmID=cm.cmID\n" +
                "left join CihazModel cmd on c.cmdID=cmd.cmdID \n" +
                "where zd.zID=" + KayID + " AND zd.UrunTipi=1\n" +
                "UNION ALL\n" +
                "Select\n" +
                "zd.zdID [ID],\n" +
                "zd.UrunID [UrunID],\n" +
                "zd.UrunTipi [ÜrünTipi],\n" +
                "(CASE WHEN zd.UrunTipi = 1 then 'Cihaz' ELSE 'Yazılım' END) [Ürün Tipi],\n" +
                "yu.yuFirmaUnvan [Cihaz/Yazılım],\n" +
                "yi.yiAdi [Marka/Adı],\n" +
                "ys.ySurum [Model/Sürüm],\n" +
                "y.LisansNo [Seri/İmei/Lisans],\n" +
                "zd.Aciklama [Açıklama],\n" +
                "y.Maliyet [Maliyet],\n" +
                "y.ZimmetDegeri [Zimmet Değeri]\n" +
                "from ZimmetHDetay zd \n" +
                "left join Yazilim y on zd.UrunID=y.yID\n" +
                "left join YazilimUretici yu on y.yuID=yu.yuID\n" +
                "left join YazilimIsim yi on y.yiID=yi.yiID\n" +
                "left join YazilimSurum ys on y.ysID=ys.ysID \n" +
                "where zd.zID=" + KayID + " AND zd.UrunTipi=2\n" +
                ") Zimmet\n" +
                "ORDER BY Zimmet.ID\n";

            textBox1.Text = Sorgu;

            DataTable dt = Army.SQL().GetDataTable(Sorgu);

            foreach (DataRow item in dt.Rows)
            {
                ListViewItem ls = new ListViewItem(item[0].ToString());
                ls.SubItems.Add(item[1].ToString());
                ls.SubItems.Add(item[2].ToString());
                ls.SubItems.Add(item[3].ToString());
                ls.SubItems.Add(item[4].ToString());
                ls.SubItems.Add(item[5].ToString());
                ls.SubItems.Add(item[6].ToString());
                ls.SubItems.Add(item[7].ToString());
                ls.SubItems.Add(item[8].ToString());
                ls.SubItems.Add(item[9].ToString());
                ls.SubItems.Add(item[10].ToString());

                _lwZimmetListe.Items.Add(ls);
            }
        }

        private void _btnSecPersonel_Click(object sender, EventArgs e)
        {
            ListePersonel kl = new ListePersonel();
            kl.ForSelection = true;
            kl.ShowDialog();

            if (Army.EventConfirm == true)
            {
                _txtPersonelInt.Text = Army.SecilenID.ToString();
                _txtPersonelString.Text = Army.SQL().GetDataCell("Select Ad + ' ' + Soyad from Personel where pID=" + _txtPersonelInt.Text);
                labelControl4.Text = Army.SQL().GetDataCell("Select Gorev from Personel where pID=" + _txtPersonelInt.Text);
                labelControl6.Text = Army.SQL().GetDataCell("Select DepAdi from Departman where dID=(Select dID from Personel where pID=" + _txtPersonelInt.Text + ")");

            }
        }

        private void _btnCihazSec_Click(object sender, EventArgs e)
        {

            Army.Aciklama = "";
            
            ListeCihaz cl = new ListeCihaz();
            cl.ForSelection = true;
            cl.ShowDialog();

            if (Army.EventConfirm == true)
            {
                _txtCihazSecInt.Text = Army.SecilenID.ToString();
                DataTable dt = Army.SQL().GetDataTable("Select top 1 ct.ChzTur,cm.ChzMarka,cmd.ChzModel,c.SeriNoIMEI,c.Maliyet,c.ZimmetDegeri,c.isHurda from Cihaz c left join CihazTur ct on c.ctID=ct.ctID left join CihazMarka cm on c.cmID=cm.cmID left join CihazModel cmd on c.cmdID=cmd.cmdID where c.cID=" + _txtCihazSecInt.Text);

                foreach (DataRow item in dt.Rows)
                {
                    if (Convert.ToBoolean(item[6]) == true)
                    {
                        MessageBox.Show("Evrağa eklemek istediğiniz Cihaz Hurda/Tasfiye statüsünde bir üründür. Zimmet işlemi yapamazsınız!", "Hatalı Ürün!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }

                    foreach (ListViewItem lt in _lwZimmetListe.Items)
                    {
                        if (lt.SubItems[1].Text == _txtCihazSecInt.Text & lt.SubItems[2].Text == "1") {
                            MessageBox.Show("Eklemek istediğiniz ürün zaten ekli.\nAynı ürünü tekrar ekleyemezsiniz.","Tekrarlanan Ürün!",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                            return;
                        }
                    }

                    PopupAciklamaEdit aep = new PopupAciklamaEdit();
                    aep.ShowDialog();

                    ListViewItem ls = new ListViewItem("0");
                    ls.SubItems.Add(_txtCihazSecInt.Text);
                    ls.SubItems.Add("1");
                    ls.SubItems.Add("Cihaz");
                    ls.SubItems.Add(item[0].ToString());
                    ls.SubItems.Add(item[1].ToString());
                    ls.SubItems.Add(item[2].ToString());
                    ls.SubItems.Add(item[3].ToString());
                    ls.SubItems.Add(Army.Aciklama);
                    ls.SubItems.Add(item[4].ToString());
                    ls.SubItems.Add(item[5].ToString());

                    _lwZimmetListe.Items.Add(ls);
                }
            }

            _txtCihazSecInt.Text = "";
        }

        private void _btnYazilimSec_Click(object sender, EventArgs e)
        {
            Army.Aciklama = "";
            
            ListeYazilim yl = new ListeYazilim();
            yl.ForSelection = true;
            yl.ShowDialog();

            if (Army.EventConfirm == true)
            {
                _txtYazilimSecInt.Text = Army.SecilenID.ToString();
                DataTable dt = Army.SQL().GetDataTable("Select top 1 yu.yuFirmaUnvan,yi.yiAdi,ys.ySurum,y.LisansNo,y.Maliyet,y.ZimmetDegeri,y.isHurda from Yazilim y left join YazilimUretici yu on y.yuID=yu.yuID left join YazilimIsim yi on y.yiID=yi.yiID left join YazilimSurum ys on y.ysID=ys.ysID where y.yID=" + _txtYazilimSecInt.Text);

                foreach (DataRow item in dt.Rows)
                {

                    if (Convert.ToBoolean(item[6]) == true)
                    {
                        MessageBox.Show("Evrağa eklemek istediğiniz Yazılım Hurda/Tasfiye statüsünde bir üründür. Zimmet işlemi yapamazsınız!", "Hatalı Ürün!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }

                    foreach (ListViewItem lt in _lwZimmetListe.Items)
                    {
                        if (lt.SubItems[1].Text == _txtYazilimSecInt.Text & lt.SubItems[2].Text == "2")
                        {
                            MessageBox.Show("Eklemek istediğiniz yazılım zaten ekli.\nAynı ürünü tekrar ekleyemezsiniz.", "Tekrarlanan Ürün!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }

                       
                    }

                    PopupAciklamaEdit aep = new PopupAciklamaEdit();
                    aep.ShowDialog();

                    ListViewItem ls = new ListViewItem("0");
                    ls.SubItems.Add(_txtYazilimSecInt.Text);
                    ls.SubItems.Add("2");
                    ls.SubItems.Add("Yazılım");
                    ls.SubItems.Add(item[0].ToString());
                    ls.SubItems.Add(item[1].ToString());
                    ls.SubItems.Add(item[2].ToString());
                    ls.SubItems.Add(item[3].ToString());
                    ls.SubItems.Add(Army.Aciklama);
                    ls.SubItems.Add(item[4].ToString());
                    ls.SubItems.Add(item[5].ToString());

                    _lwZimmetListe.Items.Add(ls);
                }
            }

            _txtYazilimSecInt.Text = "";
        }

        private void _btnKapat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void _btnZimmetListesi_Click(object sender, EventArgs e)
        {
            ListeZimmet zl = new ListeZimmet();
            zl.ShowDialog();
        }

        private void _btnFormuTemizle_Click(object sender, EventArgs e)
        {
            formuTemizle();
        }

        private void _btnKaydet_Click(object sender, EventArgs e)
        {

            if (_txtPersonelString.Text == "") {
                MessageBox.Show("Lütfen, Personel Seçiniz...");
                return;
            }

            if (_lwZimmetListe.Items.Count == 0) {
                MessageBox.Show("Lütfen, Ürünü/Ürünleri Seçiniz...");
                return;
            }


            switch (EvrakCinsi)
            {
                case 1:
                    ///Zimmet Giriş Evrağı için Kayıt Blogu
                    switch (KayID)
                    {
                        case 0:
                            {
                                foreach (ListViewItem i in _lwZimmetListe.Items)
                                {
                                    string Sorgu = "SELECT \n" +
                                        "(CASE WHEN sum(ZimmetHKutuk.EvrakCinsi) IS NULL THEN 0 ELSE sum(ZimmetHKutuk.EvrakCinsi) END) [VARMI]\n" +
                                        "FROM ZimmetHKutuk\n" +
                                        "LEFT JOIN ZimmetHDetay ON ZimmetHKutuk.zID = ZimmetHDetay.zID\n" +
                                        "WHERE\n" +
                                        "ZimmetHDetay.UrunTipi=" + i.SubItems[2].Text + " AND\n" +
                                        "ZimmetHDetay.UrunID=" + i.SubItems[1].Text + " \n" +
                                        "AND ZimmetHKutuk.isDeleted=0";

                                    int UrunZimmetDurumu = int.Parse(Army.SQL().GetDataCell(Sorgu));
                                    if (UrunZimmetDurumu > 0)
                                    {
                                        string ItemDetay = "";
                                        switch (i.SubItems[2].Text)
                                        {
                                            case "1":
                                                {
                                                    string CihazDetaySorgu = "SELECT CihazTur.ChzTur, CihazMarka.ChzMarka, CihazModel.ChzModel, Cihaz.SeriNoIMEI\n" +
                                                        "FROM Cihaz\n" +
                                                        "INNER JOIN CihazMarka ON Cihaz.cmID = CihazMarka.cmID\n" +
                                                        "INNER JOIN CihazModel ON Cihaz.cmdID = CihazModel.cmdID\n" +
                                                        "INNER JOIN CihazTur ON Cihaz.ctID = CihazTur.ctID\n" +
                                                        "WHERE (Cihaz.cID = " + i.SubItems[1].Text + ")\n";
                                                    DataTable xdt = Army.SQL().GetDataTable(CihazDetaySorgu);
                                                    if (xdt.Rows.Count > 0)
                                                    {
                                                        ItemDetay = "Urun: " + xdt.Rows[0][0].ToString() + " " + xdt.Rows[0][1].ToString() + " " + xdt.Rows[0][2].ToString() + "\nSeri No: " + xdt.Rows[0][3].ToString();
                                                    }
                                                    break;
                                                }
                                            default:
                                                {
                                                    string YazilimDetaySorgu = "SELECT YazilimUretici.yuFirmaUnvan, YazilimIsim.yiAdi, YazilimSurum.ySurum, Yazilim.LisansNo\n" +
                                                        "FROM Yazilim\n" +
                                                        "INNER JOIN YazilimIsim ON Yazilim.yiID = YazilimIsim.yiID\n" +
                                                        "INNER JOIN YazilimSurum ON Yazilim.ysID = YazilimSurum.ysID\n" +
                                                        "INNER JOIN YazilimUretici ON Yazilim.yuID = YazilimUretici.yuID\n" +
                                                        "WHERE (Yazilim.yID = " + i.SubItems[1].Text + ")\n";
                                                    DataTable xdt = Army.SQL().GetDataTable(YazilimDetaySorgu);
                                                    if (xdt.Rows.Count > 0)
                                                    {
                                                        ItemDetay = "Yazilim: " + xdt.Rows[0][0].ToString() + " " + xdt.Rows[0][1].ToString() + " " + xdt.Rows[0][2].ToString() + "\nSeri No: " + xdt.Rows[0][3].ToString();
                                                    }
                                                    break;
                                                }
                                        }

                                        MessageBox.Show("Zimmet Giriş Evrağına eklemek istediğiniz ürünlerden biri halihazırda başka bir zimmet altında.\nZimmetli olan bir ürün zimmet çıkış işlemi yapılmadan tekrar zimmet altına alınamaz.\n\n" + ItemDetay, "Hatalı Zimmet İşlemi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                        return;
                                    }
                                }

                                int newID = int.Parse(Army.SQL().GetDataCell("Insert ZimmetHKutuk (pID,EvrakDate,EvrakCreateDate,EvrakCinsi) values('" + _txtPersonelInt.Text + "',Convert(datetime,'" + _dtEvrakTarihi.Value.ToString() + "',104), Convert(datetime,'" + DateTime.Now + "',104), '" + EvrakCinsi + "'); Select @@IDENTITY"));
                                foreach (ListViewItem i in _lwZimmetListe.Items)
                                {
                                    Army.SQL().cmd("Insert ZimmetHDetay (zID,UrunID,UrunTipi,Aciklama) values('" + newID + "','" + i.SubItems[1].Text + "','" + i.SubItems[2].Text + "','" + i.SubItems[8].Text + "')");
                                }
                                formuTemizle();

                            }; break;

                        default:
                            {

                                foreach (ListViewItem i in _lwZimmetListe.Items)
                                {
                                    string Sorgu = "SELECT \n" +
                                        "(CASE WHEN sum(ZimmetHKutuk.EvrakCinsi) IS NULL THEN 0 ELSE sum(ZimmetHKutuk.EvrakCinsi) END) [VARMI]\n" +
                                        "FROM ZimmetHKutuk\n" +
                                        "LEFT JOIN ZimmetHDetay ON ZimmetHKutuk.zID = ZimmetHDetay.zID\n" +
                                        "WHERE\n" +
                                        "ZimmetHKutuk.zID<>" + KayID + " AND \n" +
                                        "ZimmetHDetay.UrunTipi=" + i.SubItems[2].Text + " AND\n" +
                                        "ZimmetHDetay.UrunID=" + i.SubItems[1].Text + " \n" +
                                        "AND ZimmetHKutuk.isDeleted=0";

                                    int UrunZimmetDurumu = int.Parse(Army.SQL().GetDataCell(Sorgu));
                                    if (UrunZimmetDurumu > 0)
                                    {
                                        string ItemDetay = "";
                                        switch (i.SubItems[2].Text)
                                        {
                                            case "1":
                                                {
                                                    string CihazDetaySorgu = "SELECT CihazTur.ChzTur, CihazMarka.ChzMarka, CihazModel.ChzModel, Cihaz.SeriNoIMEI\n" +
                                                        "FROM Cihaz\n" +
                                                        "INNER JOIN CihazMarka ON Cihaz.cmID = CihazMarka.cmID\n" +
                                                        "INNER JOIN CihazModel ON Cihaz.cmdID = CihazModel.cmdID\n" +
                                                        "INNER JOIN CihazTur ON Cihaz.ctID = CihazTur.ctID\n" +
                                                        "WHERE (Cihaz.cID = " + i.SubItems[1].Text + ")\n";
                                                    DataTable xdt = Army.SQL().GetDataTable(CihazDetaySorgu);
                                                    if (xdt.Rows.Count > 0)
                                                    {
                                                        ItemDetay = "Urun: " + xdt.Rows[0][0].ToString() + " " + xdt.Rows[0][1].ToString() + " " + xdt.Rows[0][2].ToString() + "\nSeri No: " + xdt.Rows[0][3].ToString();
                                                    }
                                                    break;
                                                }
                                            default:
                                                {
                                                    string YazilimDetaySorgu = "SELECT YazilimUretici.yuFirmaUnvan, YazilimIsim.yiAdi, YazilimSurum.ySurum, Yazilim.LisansNo\n" +
                                                        "FROM Yazilim\n" +
                                                        "INNER JOIN YazilimIsim ON Yazilim.yiID = YazilimIsim.yiID\n" +
                                                        "INNER JOIN YazilimSurum ON Yazilim.ysID = YazilimSurum.ysID\n" +
                                                        "INNER JOIN YazilimUretici ON Yazilim.yuID = YazilimUretici.yuID\n" +
                                                        "WHERE (Yazilim.yID = " + i.SubItems[1].Text + ")\n";
                                                    DataTable xdt = Army.SQL().GetDataTable(YazilimDetaySorgu);
                                                    if (xdt.Rows.Count > 0)
                                                    {
                                                        ItemDetay = "Yazilim: " + xdt.Rows[0][0].ToString() + " " + xdt.Rows[0][1].ToString() + " " + xdt.Rows[0][2].ToString() + "\nSeri No: " + xdt.Rows[0][3].ToString();
                                                    }
                                                    break;
                                                }
                                        }

                                        MessageBox.Show("Zimmet Giriş Evrağına eklemek istediğiniz ürünlerden biri halihazırda başka bir zimmet altında.\nZimmetli olan bir ürün zimmet çıkış işlemi yapılmadan tekrar zimmet altına alınamaz.\n\n" + ItemDetay, "Hatalı Zimmet İşlemi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                        return;
                                    }
                                }

                                Army.SQL().cmd("Update ZimmetHKutuk Set pID='" + _txtPersonelInt.Text + "',EvrakDate= Convert(datetime,'" + _dtEvrakTarihi.Value.ToString() + "',104),EvrakUpdateDate=Convert(datetime,'" + DateTime.Now + "',104) where  zID=" + KayID);

                                foreach (ListViewItem i in _lwZimmetListe.Items)
                                {
                                    if (i.SubItems[0].Text != "0")
                                    {
                                        Army.SQL().cmd("Update ZimmetHDetay Set zID='" + KayID + "', UrunID='" + i.SubItems[1].Text + "',UrunTipi='" + i.SubItems[2].Text + "', Aciklama='" + i.SubItems[8].Text + "'  where zdID=" + i.SubItems[0].Text);
                                    }
                                    else if (i.SubItems[0].Text == "0")
                                    {
                                        Army.SQL().cmd("Insert ZimmetHDetay (zID,UrunID,UrunTipi,Aciklama) values('" + KayID + "','" + i.SubItems[1].Text + "','" + i.SubItems[2].Text + "','" + i.SubItems[8].Text + "')");
                                    }
                                }

                                foreach (ListViewItem i in _lwZimmetDeleteListe.Items)
                                {
                                    Army.SQL().cmd("Delete from ZimmetHDetay where zdID=" + i.SubItems[0].Text);
                                }

                                MessageBox.Show("{" + KayID + "} Nolu Zimmet Güncellendi.");
                                this.Close();
                            }; break;
                    }
                    ///Zimmet Giriş Evrağı için Kayıt Blogu SONU
                    break;
                
                case -1:
                    ///Zimmet Çıkış Evrağı için Kayıt Blogu
                    switch (KayID)
                    {
                        case 0:
                            {
                                foreach (ListViewItem i in _lwZimmetListe.Items)
                                {
                                    string Sorgu = "SELECT \n" +
                                        "(CASE WHEN sum(ZimmetHKutuk.EvrakCinsi) IS NULL THEN 0 ELSE sum(ZimmetHKutuk.EvrakCinsi) END) [VARMI]\n" +
                                        "FROM ZimmetHKutuk\n" +
                                        "LEFT JOIN ZimmetHDetay ON ZimmetHKutuk.zID = ZimmetHDetay.zID\n" +
                                        "WHERE\n" +
                                        "ZimmetHKutuk.pID=" + int.Parse(_txtPersonelInt.Text) + " AND\n" +
                                        "ZimmetHDetay.UrunTipi=" + i.SubItems[2].Text + " AND\n" +
                                        "ZimmetHDetay.UrunID=" + i.SubItems[1].Text + " \n" +
                                        "AND ZimmetHKutuk.isDeleted=0";

                                    int UrunZimmetDurumu = int.Parse(Army.SQL().GetDataCell(Sorgu));
                                    if (UrunZimmetDurumu == 0)
                                    {
                                        string ItemDetay = "";
                                        switch (i.SubItems[2].Text)
                                        {
                                            case "1":
                                                {
                                                    string CihazDetaySorgu = "SELECT CihazTur.ChzTur, CihazMarka.ChzMarka, CihazModel.ChzModel, Cihaz.SeriNoIMEI\n" +
                                                        "FROM Cihaz\n" +
                                                        "INNER JOIN CihazMarka ON Cihaz.cmID = CihazMarka.cmID\n" +
                                                        "INNER JOIN CihazModel ON Cihaz.cmdID = CihazModel.cmdID\n" +
                                                        "INNER JOIN CihazTur ON Cihaz.ctID = CihazTur.ctID\n" +
                                                        "WHERE (Cihaz.cID = " + i.SubItems[1].Text + ")\n";
                                                    DataTable xdt = Army.SQL().GetDataTable(CihazDetaySorgu);
                                                    if (xdt.Rows.Count > 0)
                                                    {
                                                        ItemDetay = "Urun: " + xdt.Rows[0][0].ToString() + " " + xdt.Rows[0][1].ToString() + " " + xdt.Rows[0][2].ToString() + "\nSeri No: " + xdt.Rows[0][3].ToString();
                                                    }
                                                    break;
                                                }
                                            default:
                                                {
                                                    string YazilimDetaySorgu = "SELECT YazilimUretici.yuFirmaUnvan, YazilimIsim.yiAdi, YazilimSurum.ySurum, Yazilim.LisansNo\n" +
                                                        "FROM Yazilim\n" +
                                                        "INNER JOIN YazilimIsim ON Yazilim.yiID = YazilimIsim.yiID\n" +
                                                        "INNER JOIN YazilimSurum ON Yazilim.ysID = YazilimSurum.ysID\n" +
                                                        "INNER JOIN YazilimUretici ON Yazilim.yuID = YazilimUretici.yuID\n" +
                                                        "WHERE (Yazilim.yID = " + i.SubItems[1].Text + ")\n";
                                                    DataTable xdt = Army.SQL().GetDataTable(YazilimDetaySorgu);
                                                    if (xdt.Rows.Count > 0)
                                                    {
                                                        ItemDetay = "Yazilim: " + xdt.Rows[0][0].ToString() + " " + xdt.Rows[0][1].ToString() + " " + xdt.Rows[0][2].ToString() + "\nSeri No: " + xdt.Rows[0][3].ToString();
                                                    }
                                                    break;
                                                }
                                        }

                                        MessageBox.Show("Zimmet Çıkış Evrağına eklemek istediğiniz ürünlerden biri halihazırda başka bir zimmet altında veya bu personelin zimmeti altında değil.\nBu Personelden ancak kendi zimmeti altındaki ürünleri çıkış yapabilirsiniz.\n\n" + ItemDetay, "Hatalı Zimmet İşlemi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                        return;
                                    }
                                }

                                int newID = int.Parse(Army.SQL().GetDataCell("Insert ZimmetHKutuk (pID,EvrakDate,EvrakCreateDate,EvrakCinsi) values('" + _txtPersonelInt.Text + "',Convert(datetime,'" + _dtEvrakTarihi.Value.ToString() + "',104), Convert(datetime,'" + DateTime.Now + "',104), '" + EvrakCinsi + "'); Select @@IDENTITY"));
                                foreach (ListViewItem i in _lwZimmetListe.Items)
                                {
                                    Army.SQL().cmd("Insert ZimmetHDetay (zID,UrunID,UrunTipi,Aciklama) values('" + newID + "','" + i.SubItems[1].Text + "','" + i.SubItems[2].Text + "','" + i.SubItems[8].Text + "')");
                                }
                                formuTemizle();

                            }; break;

                        default:
                            {

                                foreach (ListViewItem i in _lwZimmetListe.Items)
                                {
                                    string Sorgu = "SELECT \n" +
                                        "(CASE WHEN sum(ZimmetHKutuk.EvrakCinsi) IS NULL THEN 0 ELSE sum(ZimmetHKutuk.EvrakCinsi) END) [VARMI]\n" +
                                        "FROM ZimmetHKutuk\n" +
                                        "LEFT JOIN ZimmetHDetay ON ZimmetHKutuk.zID = ZimmetHDetay.zID\n" +
                                        "WHERE\n" +
                                        "ZimmetHKutuk.pID=" + int.Parse(_txtPersonelInt.Text) + " AND \n" +
                                        "ZimmetHKutuk.zID<>" + KayID + " AND \n" +
                                        "ZimmetHDetay.UrunTipi=" + i.SubItems[2].Text + " AND\n" +
                                        "ZimmetHDetay.UrunID=" + i.SubItems[1].Text + " \n"+
                                        "AND ZimmetHKutuk.isDeleted=0";

                                    int UrunZimmetDurumu = int.Parse(Army.SQL().GetDataCell(Sorgu));
                                    if (UrunZimmetDurumu == 0)
                                    {
                                        string ItemDetay = "";
                                        switch (i.SubItems[2].Text)
                                        {
                                            case "1":
                                                {
                                                    string CihazDetaySorgu = "SELECT CihazTur.ChzTur, CihazMarka.ChzMarka, CihazModel.ChzModel, Cihaz.SeriNoIMEI\n" +
                                                        "FROM Cihaz\n" +
                                                        "INNER JOIN CihazMarka ON Cihaz.cmID = CihazMarka.cmID\n" +
                                                        "INNER JOIN CihazModel ON Cihaz.cmdID = CihazModel.cmdID\n" +
                                                        "INNER JOIN CihazTur ON Cihaz.ctID = CihazTur.ctID\n" +
                                                        "WHERE (Cihaz.cID = " + i.SubItems[1].Text + ")\n";
                                                    DataTable xdt = Army.SQL().GetDataTable(CihazDetaySorgu);
                                                    if (xdt.Rows.Count > 0)
                                                    {
                                                        ItemDetay = "Urun: " + xdt.Rows[0][0].ToString() + " " + xdt.Rows[0][1].ToString() + " " + xdt.Rows[0][2].ToString() + "\nSeri No: " + xdt.Rows[0][3].ToString();
                                                    }
                                                    break;
                                                }
                                            default:
                                                {
                                                    string YazilimDetaySorgu = "SELECT YazilimUretici.yuFirmaUnvan, YazilimIsim.yiAdi, YazilimSurum.ySurum, Yazilim.LisansNo\n" +
                                                        "FROM Yazilim\n" +
                                                        "INNER JOIN YazilimIsim ON Yazilim.yiID = YazilimIsim.yiID\n" +
                                                        "INNER JOIN YazilimSurum ON Yazilim.ysID = YazilimSurum.ysID\n" +
                                                        "INNER JOIN YazilimUretici ON Yazilim.yuID = YazilimUretici.yuID\n" +
                                                        "WHERE (Yazilim.yID = " + i.SubItems[1].Text + ")\n";
                                                    DataTable xdt = Army.SQL().GetDataTable(YazilimDetaySorgu);
                                                    if (xdt.Rows.Count > 0)
                                                    {
                                                        ItemDetay = "Yazilim: " + xdt.Rows[0][0].ToString() + " " + xdt.Rows[0][1].ToString() + " " + xdt.Rows[0][2].ToString() + "\nSeri No: " + xdt.Rows[0][3].ToString();
                                                    }
                                                    break;
                                                }
                                        }

                                        MessageBox.Show("Zimmet Çıkış Evrağına eklemek istediğiniz ürünlerden biri halihazırda başka bir zimmet altında veya bu personelin zimmeti altında değil.\nBu Personelden ancak kendi zimmeti altındaki ürünleri çıkış yapabilirsiniz.\n\n" + ItemDetay, "Hatalı Zimmet İşlemi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                        return;
                                    }
                                }

                                Army.SQL().cmd("Update ZimmetHKutuk Set pID='" + _txtPersonelInt.Text + "',EvrakDate= Convert(datetime,'" + _dtEvrakTarihi.Value.ToString() + "',104),EvrakUpdateDate=Convert(datetime,'" + DateTime.Now + "',104) where  zID=" + KayID);

                                foreach (ListViewItem i in _lwZimmetListe.Items)
                                {
                                    if (i.SubItems[0].Text != "0")
                                    {
                                        Army.SQL().cmd("Update ZimmetHDetay Set zID='" + KayID + "', UrunID='" + i.SubItems[1].Text + "',UrunTipi='" + i.SubItems[2].Text + "', Aciklama='" + i.SubItems[8].Text + "'  where zdID=" + i.SubItems[0].Text);
                                    }
                                    else if (i.SubItems[0].Text == "0")
                                    {
                                        Army.SQL().cmd("Insert ZimmetHDetay (zID,UrunID,UrunTipi,Aciklama) values('" + KayID + "','" + i.SubItems[1].Text + "','" + i.SubItems[2].Text + "','" + i.SubItems[8].Text + "')");
                                    }
                                }

                                foreach (ListViewItem i in _lwZimmetDeleteListe.Items)
                                {
                                    Army.SQL().cmd("Delete from ZimmetHDetay where zdID=" + i.SubItems[0].Text);
                                }

                                MessageBox.Show("{" + KayID + "} Nolu Zimmet Güncellendi.");
                                this.Close();
                            }; break;
                    }
                    ///Zimmet Çıkış Evrağı için Kayıt Blogu SONU
                    break;
            }
        }

        private void _txtPersonelInt_EditValueChanged(object sender, EventArgs e)
        {

        }

        private void _btnDizayn_Click(object sender, EventArgs e)
        {
            DataTable forReportEvrakKutuk = new DataTable();
            DataTable forReportEvrakDetay = new DataTable();

            switch (KayID)
            {
                case 0:
                    MessageBox.Show("Zimmet Tutanağı Yazdırmak için önce verinin kaydedilmesi gerekir.", "Yeni Kayıt", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    break;
                default:
                    string Sorgu = "SELECT * FROM \n" +
                        "(\n" +
                        "Select\n" +
                        "zd.zdID [ID],\n" +
                        "zd.UrunID [UrunID],\n" +
                        "zd.UrunTipi [ÜrünTipi],\n" +
                        "(CASE WHEN zd.UrunTipi = 1 then 'Cihaz' ELSE 'Yazılım' END) [Ürün Tipi],\n" +
                        "ct.chzTur [Cihaz/Yazılım],\n" +
                        "cm.ChzMarka [Marka/Adı],\n" +
                        "cmd.ChzModel [Model/Sürüm],\n" +
                        "c.SeriNoIMEI [Seri/İmei/Lisans],\n" +
                        "zd.Aciklama [Açıklama],\n" +
                        "c.Maliyet [Maliyet],\n" +
                        "c.MaliyetDoviz [Maliyet Para Birimi],\n" +
                        "c.ZimmetDegeri [Zimmet Değeri],\n" +
                        "c.ZimmetDegeriDoviz [Zimmet Değeri Para Birimi]\n" +
                        "from ZimmetHDetay zd \n" +
                        "left join Cihaz c on zd.UrunID=c.cID\n" +
                        "left join CihazTur ct on c.ctID=ct.ctID\n" +
                        "left join CihazMarka cm on c.cmID=cm.cmID\n" +
                        "left join CihazModel cmd on c.cmdID=cmd.cmdID \n" +
                        "where zd.zID=" + KayID + " AND zd.UrunTipi=1\n" +
                        "UNION ALL\n" +
                        "Select\n" +
                        "zd.zdID [ID],\n" +
                        "zd.UrunID [UrunID],\n" +
                        "zd.UrunTipi [ÜrünTipi],\n" +
                        "(CASE WHEN zd.UrunTipi = 1 then 'Cihaz' ELSE 'Yazılım' END) [Ürün Tipi],\n" +
                        "yu.yuFirmaUnvan [Cihaz/Yazılım],\n" +
                        "yi.yiAdi [Marka/Adı],\n" +
                        "ys.ySurum [Model/Sürüm],\n" +
                        "y.LisansNo [Seri/İmei/Lisans],\n" +
                        "zd.Aciklama [Açıklama],\n" +
                        "y.Maliyet [Maliyet],\n" +
                        "y.MaliyetDoviz [Maliyet Para Birimi],\n" +
                        "y.ZimmetDegeri [Zimmet Değeri],\n" +
                        "y.ZimmetDegeriDoviz [Zimmet Değeri Para Birimi]\n" +
                        "from ZimmetHDetay zd \n" +
                        "left join Yazilim y on zd.UrunID=y.yID\n" +
                        "left join YazilimUretici yu on y.yuID=yu.yuID\n" +
                        "left join YazilimIsim yi on y.yiID=yi.yiID\n" +
                        "left join YazilimSurum ys on y.ysID=ys.ysID \n" +
                        "where zd.zID=" + KayID + " AND zd.UrunTipi=2\n" +
                        ") Zimmet\n" +
                        "ORDER BY Zimmet.ID\n";

                    forReportEvrakDetay = Army.SQL().GetDataTable(Sorgu);
                    forReportEvrakDetay.TableName = "EvrakDetay";

                    String UstBilgiSorgu = "SELECT \n" +
                        "ZimmetHKutuk.zID [Evrak ID],\n" +
                        "ZimmetHKutuk.EvrakDate [Evrak Tarihi],\n" +
                        "Personel.Ad + ' ' + Personel.Soyad [Personel],\n" +
                        "Personel.Gorev [Görev/Ünvan],\n" +
                        "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaUnvan') [Firma Ünvan],\n" +
                        "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaAdres') [Firma Adres],\n" +
                        "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaYetkiliAdSoyad') [Firma Yetkilisi],\n" +
                        "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaYetkiliUnvan') [Yetkili Ünvanı],\n" +
                        "(Select Ad + ' ' + Soyad from Personel where pID=(select ZimmetYetkilisiId from Departman where dID=(select dID from Personel where pID=ZimmetHKutuk.pID)))[Departman Zimmet Sorumlusu],\n" +
                        "(Select Gorev from Personel where pID=(select ZimmetYetkilisiId from Departman where dID=(select dID from Personel where pID=ZimmetHKutuk.pID)))[Zimmet Sorumlusunun Ünvanı]\n" +                        
                        "FROM ZimmetHKutuk\n" +
                        "INNER JOIN Personel ON ZimmetHKutuk.pID = Personel.pID\n" +
                        "WHERE (ZimmetHKutuk.zID = " + KayID + ")\n";

                    forReportEvrakKutuk = Army.SQL().GetDataTable(UstBilgiSorgu);
                    forReportEvrakKutuk.TableName = "EvrakKutuk";

                    FReport.RegisterData(forReportEvrakKutuk, "EvrakKutuk");
                    FReport.RegisterData(forReportEvrakDetay, "EvrakDetay");

                    FReport.GetDataSource("EvrakKutuk").Enabled = true;
                    FReport.GetDataSource("EvrakDetay").Enabled = true;

                    switch (EvrakCinsi)
                    {
                        case 1:
                            if (Army.ReportForZimmetGiris.Length > 0 & File.Exists(Army.ProgramBaseEnvironmentPath + Army.ReportForZimmetGiris))
                            {
                                FReport.Load(Army.ProgramBaseEnvironmentPath + Army.ReportForZimmetGiris);
                            }
                            break;
                        default:
                            if (Army.ReportForZimmetCikis.Length > 0 & File.Exists(Army.ProgramBaseEnvironmentPath + Army.ReportForZimmetCikis))
                            {
                                FReport.Load(Army.ProgramBaseEnvironmentPath + Army.ReportForZimmetCikis);
                            }
                            break;
                    };

                    FReport.Design();
                    break;
            };
        }

        private void _btnOnizleme_Click(object sender, EventArgs e)
        {
            DataTable forReportEvrakKutuk = new DataTable();
            DataTable forReportEvrakDetay = new DataTable();

            switch (KayID)
            {
                case 0:
                    MessageBox.Show("Zimmet Tutanağı Yazdırmak için önce verinin kaydedilmesi gerekir.", "Yeni Kayıt", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    break;
                default:
                    string Sorgu = "SELECT * FROM \n" +
                        "(\n" +
                        "Select\n" +
                        "zd.zdID [ID],\n" +
                        "zd.UrunID [UrunID],\n" +
                        "zd.UrunTipi [ÜrünTipi],\n" +
                        "(CASE WHEN zd.UrunTipi = 1 then 'Cihaz' ELSE 'Yazılım' END) [Ürün Tipi],\n" +
                        "ct.chzTur [Cihaz/Yazılım],\n" +
                        "cm.ChzMarka [Marka/Adı],\n" +
                        "cmd.ChzModel [Model/Sürüm],\n" +
                        "c.SeriNoIMEI [Seri/İmei/Lisans],\n" +
                        "zd.Aciklama [Açıklama],\n" +
                        "c.Maliyet [Maliyet],\n" +
                        "c.MaliyetDoviz [Maliyet Para Birimi],\n" +
                        "c.ZimmetDegeri [Zimmet Değeri],\n" +
                        "c.ZimmetDegeriDoviz [Zimmet Değeri Para Birimi]\n" +
                        "from ZimmetHDetay zd \n" +
                        "left join Cihaz c on zd.UrunID=c.cID\n" +
                        "left join CihazTur ct on c.ctID=ct.ctID\n" +
                        "left join CihazMarka cm on c.cmID=cm.cmID\n" +
                        "left join CihazModel cmd on c.cmdID=cmd.cmdID \n" +
                        "where zd.zID=" + KayID + " AND zd.UrunTipi=1\n" +
                        "UNION ALL\n" +
                        "Select\n" +
                        "zd.zdID [ID],\n" +
                        "zd.UrunID [UrunID],\n" +
                        "zd.UrunTipi [ÜrünTipi],\n" +
                        "(CASE WHEN zd.UrunTipi = 1 then 'Cihaz' ELSE 'Yazılım' END) [Ürün Tipi],\n" +
                        "yu.yuFirmaUnvan [Cihaz/Yazılım],\n" +
                        "yi.yiAdi [Marka/Adı],\n" +
                        "ys.ySurum [Model/Sürüm],\n" +
                        "y.LisansNo [Seri/İmei/Lisans],\n" +
                        "zd.Aciklama [Açıklama],\n" +
                        "y.Maliyet [Maliyet],\n" +
                        "y.MaliyetDoviz [Maliyet Para Birimi],\n" +
                        "y.ZimmetDegeri [Zimmet Değeri],\n" +
                        "y.ZimmetDegeriDoviz [Zimmet Değeri Para Birimi]\n" +
                        "from ZimmetHDetay zd \n" +
                        "left join Yazilim y on zd.UrunID=y.yID\n" +
                        "left join YazilimUretici yu on y.yuID=yu.yuID\n" +
                        "left join YazilimIsim yi on y.yiID=yi.yiID\n" +
                        "left join YazilimSurum ys on y.ysID=ys.ysID \n" +
                        "where zd.zID=" + KayID + " AND zd.UrunTipi=2\n" +
                        ") Zimmet\n" +
                        "ORDER BY Zimmet.ID\n";

                    forReportEvrakDetay = Army.SQL().GetDataTable(Sorgu);
                    forReportEvrakDetay.TableName = "EvrakDetay";

                    String UstBilgiSorgu = "SELECT \n" +
                        "ZimmetHKutuk.zID [Evrak ID],\n" +
                        "ZimmetHKutuk.EvrakDate [Evrak Tarihi],\n" +
                        "Personel.Ad + ' ' + Personel.Soyad [Personel],\n" +
                        "Personel.Gorev [Görev/Ünvan],\n" +
                        "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaUnvan') [Firma Ünvan],\n" +
                        "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaAdres') [Firma Adres],\n" +
                        "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaYetkiliAdSoyad') [Firma Yetkilisi],\n" +
                        "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaYetkiliUnvan') [Yetkili Ünvanı],\n" +
                        "(Select Ad + ' ' + Soyad from Personel where pID=(select ZimmetYetkilisiId from Departman where dID=(select dID from Personel where pID=ZimmetHKutuk.pID)))[Departman Zimmet Sorumlusu],\n" +
                        "(Select Gorev from Personel where pID=(select ZimmetYetkilisiId from Departman where dID=(select dID from Personel where pID=ZimmetHKutuk.pID)))[Zimmet Sorumlusunun Ünvanı]\n" +
                        "FROM ZimmetHKutuk\n" +
                        "INNER JOIN Personel ON ZimmetHKutuk.pID = Personel.pID\n" +
                        "WHERE (ZimmetHKutuk.zID = " + KayID + ")\n";

                    forReportEvrakKutuk = Army.SQL().GetDataTable(UstBilgiSorgu);
                    forReportEvrakKutuk.TableName = "EvrakKutuk";

                    FReport.RegisterData(forReportEvrakKutuk, "EvrakKutuk");
                    FReport.RegisterData(forReportEvrakDetay, "EvrakDetay");

                    FReport.GetDataSource("EvrakKutuk").Enabled = true;
                    FReport.GetDataSource("EvrakDetay").Enabled = true;

                    switch (EvrakCinsi)
                    {
                        case 1:
                            if (Army.ReportForZimmetGiris.Length > 0 & File.Exists(Army.ProgramBaseEnvironmentPath + Army.ReportForZimmetGiris))
                            {
                                FReport.Load(Army.ProgramBaseEnvironmentPath + Army.ReportForZimmetGiris);
                            }
                            break;
                        default:
                            if (Army.ReportForZimmetCikis.Length > 0 & File.Exists(Army.ProgramBaseEnvironmentPath + Army.ReportForZimmetCikis))
                            {
                                FReport.Load(Army.ProgramBaseEnvironmentPath + Army.ReportForZimmetCikis);
                            }
                            break;
                    };

                    FReport.Show();
                    break;
            };
        }

        private void _btnYazdir_Click(object sender, EventArgs e)
        {
            DataTable forReportEvrakKutuk = new DataTable();
            DataTable forReportEvrakDetay = new DataTable();

            switch (KayID)
            {
                case 0:
                    MessageBox.Show("Zimmet Tutanağı Yazdırmak için önce verinin kaydedilmesi gerekir.", "Yeni Kayıt", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    break;
                default:
                    string Sorgu = "SELECT * FROM \n" +
                        "(\n" +
                        "Select\n" +
                        "zd.zdID [ID],\n" +
                        "zd.UrunID [UrunID],\n" +
                        "zd.UrunTipi [ÜrünTipi],\n" +
                        "(CASE WHEN zd.UrunTipi = 1 then 'Cihaz' ELSE 'Yazılım' END) [Ürün Tipi],\n" +
                        "ct.chzTur [Cihaz/Yazılım],\n" +
                        "cm.ChzMarka [Marka/Adı],\n" +
                        "cmd.ChzModel [Model/Sürüm],\n" +
                        "c.SeriNoIMEI [Seri/İmei/Lisans],\n" +
                        "zd.Aciklama [Açıklama],\n" +
                        "c.Maliyet [Maliyet],\n" +
                        "c.MaliyetDoviz [Maliyet Para Birimi],\n" +
                        "c.ZimmetDegeri [Zimmet Değeri],\n" +
                        "c.ZimmetDegeriDoviz [Zimmet Değeri Para Birimi]\n" +
                        "from ZimmetHDetay zd \n" +
                        "left join Cihaz c on zd.UrunID=c.cID\n" +
                        "left join CihazTur ct on c.ctID=ct.ctID\n" +
                        "left join CihazMarka cm on c.cmID=cm.cmID\n" +
                        "left join CihazModel cmd on c.cmdID=cmd.cmdID \n" +
                        "where zd.zID=" + KayID + " AND zd.UrunTipi=1\n" +
                        "UNION ALL\n" +
                        "Select\n" +
                        "zd.zdID [ID],\n" +
                        "zd.UrunID [UrunID],\n" +
                        "zd.UrunTipi [ÜrünTipi],\n" +
                        "(CASE WHEN zd.UrunTipi = 1 then 'Cihaz' ELSE 'Yazılım' END) [Ürün Tipi],\n" +
                        "yu.yuFirmaUnvan [Cihaz/Yazılım],\n" +
                        "yi.yiAdi [Marka/Adı],\n" +
                        "ys.ySurum [Model/Sürüm],\n" +
                        "y.LisansNo [Seri/İmei/Lisans],\n" +
                        "zd.Aciklama [Açıklama],\n" +
                        "y.Maliyet [Maliyet],\n" +
                        "y.MaliyetDoviz [Maliyet Para Birimi],\n" +
                        "y.ZimmetDegeri [Zimmet Değeri],\n" +
                        "y.ZimmetDegeriDoviz [Zimmet Değeri Para Birimi]\n" +
                        "from ZimmetHDetay zd \n" +
                        "left join Yazilim y on zd.UrunID=y.yID\n" +
                        "left join YazilimUretici yu on y.yuID=yu.yuID\n" +
                        "left join YazilimIsim yi on y.yiID=yi.yiID\n" +
                        "left join YazilimSurum ys on y.ysID=ys.ysID \n" +
                        "where zd.zID=" + KayID + " AND zd.UrunTipi=2\n" +
                        ") Zimmet\n" +
                        "ORDER BY Zimmet.ID\n";

                    forReportEvrakDetay = Army.SQL().GetDataTable(Sorgu);
                    forReportEvrakDetay.TableName = "EvrakDetay";

                    //String UstBilgiSorgu = "SELECT \n" +
                    //    "ZimmetHKutuk.zID [Evrak ID],\n" +
                    //    "ZimmetHKutuk.EvrakDate [Evrak Tarihi],\n" +
                    //    "Personel.Ad + ' ' + Personel.Soyad [Personel],\n" +
                    //    "Personel.Gorev [Görev/Ünvan],\n" +
                    //    "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaUnvan') [Firma Ünvan],\n" +
                    //    "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaAdres') [Firma Adres],\n" +
                    //    "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaYetkiliAdSoyad') [Firma Yetkilisi],\n" +
                    //    "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaYetkiliUnvan') [Yetkili Ünvanı]\n" +
                    //    "FROM ZimmetHKutuk\n" +
                    //    "INNER JOIN Personel ON ZimmetHKutuk.pID = Personel.pID\n" +
                    //    "WHERE (ZimmetHKutuk.zID = " + KayID + ")\n";

                    String UstBilgiSorgu = "SELECT \n" +
                        "ZimmetHKutuk.zID [Evrak ID],\n" +
                        "ZimmetHKutuk.EvrakDate [Evrak Tarihi],\n" +
                        "Personel.Ad + ' ' + Personel.Soyad [Personel],\n" +
                        "Personel.Gorev [Görev/Ünvan],\n" +
                        "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaUnvan') [Firma Ünvan],\n" +
                        "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaAdres') [Firma Adres],\n" +
                        "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaYetkiliAdSoyad') [Firma Yetkilisi],\n" +
                        "(SELECT Value FROM AppSettings WHERE AppSettings.uid=" + Army.ActiveUserId + " AND AppSettings.SettingKey='FirmaYetkiliUnvan') [Yetkili Ünvanı],\n" +
                        "(Select Ad + ' ' + Soyad from Personel where pID=(select ZimmetYetkilisiId from Departman where dID=(select dID from Personel where pID=ZimmetHKutuk.pID)))[Departman Zimmet Sorumlusu],\n" +
                        "(Select Gorev from Personel where pID=(select ZimmetYetkilisiId from Departman where dID=(select dID from Personel where pID=ZimmetHKutuk.pID)))[Zimmet Sorumlusunun Ünvanı]\n" +
                        "FROM ZimmetHKutuk\n" +
                        "INNER JOIN Personel ON ZimmetHKutuk.pID = Personel.pID\n" +
                        "WHERE (ZimmetHKutuk.zID = " + KayID + ")\n";

                    forReportEvrakKutuk = Army.SQL().GetDataTable(UstBilgiSorgu);
                    forReportEvrakKutuk.TableName = "EvrakKutuk";

                    FReport.RegisterData(forReportEvrakKutuk, "EvrakKutuk");
                    FReport.RegisterData(forReportEvrakDetay, "EvrakDetay");

                    FReport.GetDataSource("EvrakKutuk").Enabled = true;
                    FReport.GetDataSource("EvrakDetay").Enabled = true;

                    switch (EvrakCinsi)
                    {
                        case 1:
                            if (Army.ReportForZimmetGiris.Length > 0 & File.Exists(Army.ProgramBaseEnvironmentPath + Army.ReportForZimmetGiris))
                            {
                                FReport.Load(Army.ProgramBaseEnvironmentPath + Army.ReportForZimmetGiris);
                            }
                            break;
                        default:
                            if (Army.ReportForZimmetCikis.Length > 0 & File.Exists(Army.ProgramBaseEnvironmentPath + Army.ReportForZimmetCikis))
                            {
                                FReport.Load(Army.ProgramBaseEnvironmentPath + Army.ReportForZimmetCikis);
                            }
                            break;
                    };

                    FReport.Print();
                    break;
            };
        }
    }
}